home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 Development Libraries / SGI IRIX 6.2 Development Libraries.iso / dist / complib.idb / usr / share / catman / p_man / cat3 / complib / CQRSL.z / CQRSL
Text File  |  1996-03-14  |  6KB  |  199 lines

  1.  
  2.  
  3.  
  4. CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))                                                            CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
  5.  
  6.  
  7.  
  8. NNNNAAAAMMMMEEEE
  9.      CQRSL   - CQRSL applies the output of CQRDC to compute coordinate
  10.      transformations, projections, and least squares solutions.  For K .LE.
  11.      MIN(N,P), let XK be the matrix
  12.  
  13.         XK = (X(JVPT(1)),X(JVPT(2)), ... ,X(JVPT(K)))
  14.  
  15.      formed from columnns JVPT(1), ... ,JVPT(K) of the original N x P matrix X
  16.      that was input to CQRDC (if no pivoting was done, XK consists of the
  17.      first K columns of X in their original order).  CQRDC produces a factored
  18.      unitary matrix Q and an upper triangular matrix R such that
  19.  
  20.         XK = Q * (R)
  21.         (0)
  22.  
  23.      This information is contained in coded form in the arrays X and QRAUX.
  24.  
  25.  
  26. SSSSYYYYNNNNOOOOPPPPSSSSYYYYSSSS
  27.       SUBROUTINE CQRSL(X,LDX,N,K,QRAUX,Y,QY,QTY,B,RSD,XB,JOB,INFO)
  28.  
  29. DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  30.      On Entry
  31.  
  32.      XXXX COMPLEX(LDX,P).
  33.         X contains the output of CQRDC.
  34.  
  35.      LLLLDDDDXXXX INTEGER.
  36.         LDX is the leading dimension of the array X.
  37.  
  38.      NNNN INTEGER.
  39.         N is the number of rows of the matrix XK.  It must
  40.         have the same value as N in CQRDC.
  41.  
  42.      KKKK INTEGER.
  43.         K is the number of columns of the matrix XK.  K
  44.         must not be greater than (N,P), where P is the
  45.         same as in the calling sequence to CQRDC.
  46.  
  47.      QQQQRRRRAAAAUUUUXXXX COMPLEX(P).
  48.         QRAUX contains the auxiliary output from CQRDC.
  49.  
  50.      YYYY COMPLEX(N)
  51.         Y contains an N-vector that is to be manipulated
  52.         by CQRSL.
  53.  
  54.      JJJJOOOOBBBB INTEGER.
  55.         JOB specifies what is to be computed.  JOB has
  56.         the decimal expansion ABCDE, with the following
  57.         meaning.
  58.         If A .NE. 0, compute QY.
  59.         If B,C,D, or E .NE. 0, compute QTY.
  60.  
  61.  
  62.  
  63.                                                                         PPPPaaaaggggeeee 1111
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))                                                            CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
  71.  
  72.  
  73.  
  74.         If C .NE. 0, compute B.
  75.         If D .NE. 0, compute RSD .
  76.         If E .NE. 0, compute  XB.
  77.         Note that a request to compute B, RSD, or XB
  78.         automatically triggers the computation of QTY, for
  79.         which an array must be provided in the calling
  80.         sequence.  On Return
  81.  
  82.      QQQQYYYY COMPLEX(N).
  83.         QY contains Q*Y, if its computation has been
  84.         requested.
  85.  
  86.      QQQQTTTTYYYY COMPLEX(N).
  87.         QTY contains CTRANS(Q)*Y, if its computation has
  88.         been requested.  Here CTRANS(Q) is the conjugate
  89.         transpose of the matrix Q.
  90.  
  91.      BBBB COMPLEX(K)
  92.         B contains the solution of the least squares problem
  93.         minimize NORM2(Y - XK*B),
  94.         if its computation has been requested.  (Note that
  95.         if pivoting was requested in CQRDC, the J-th
  96.         component of B will be associated with column JVPT(J)
  97.         of the original matrix X that was input into CQRDC.)
  98.  
  99.      RRRRSSSSDDDD COMPLEX(N).
  100.         RSD contains the least squares residual Y - XK*B,
  101.         if its computation has been requested.  RSD is
  102.         also the orthogonal projection of Y onto the
  103.         orthogonal complement of the column space of XK.
  104.  
  105.      XXXXBBBB COMPLEX(N).
  106.         XB contains the least squares approximation XK*B,
  107.         if its computation has been requested.  XB is also
  108.         the orthogonal projection of Y onto the column space
  109.         of X.
  110.  
  111.      IIIINNNNFFFFOOOO INTEGER.
  112.         INFO is zero unless the computation of B has
  113.         been requested and R is exactly singular.  In
  114.         this case, INFO is the index of the first zero
  115.         diagonal element of R and B is left unaltered.  The parameters QY,
  116.      QTY, B, RSD, and XB are not referenced if their computation is not
  117.      requested and in this case can be replaced by dummy variables in the
  118.      calling program.  To save storage, the user may in some cases use the
  119.      same array for different parameters in the calling sequence.  A
  120.      frequently occuring example is when one wishes to compute any of B, RSD,
  121.      or XB and does not need Y or QTY.  In this case one may identify Y, QTY,
  122.      and one of B, RSD, or XB, while providing separate arrays for anything
  123.      else that is to be computed.  Thus the calling sequence CALL
  124.      CQRSL(X,LDX,N,K,QRAUX,Y,DUM,Y,B,Y,DUM,110,INFO) will result in the
  125.      computation of B and RSD, with RSD overwriting Y.  More generally, each
  126.  
  127.  
  128.  
  129.                                                                         PPPPaaaaggggeeee 2222
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))                                                            CCCCQQQQRRRRSSSSLLLL((((3333FFFF))))
  137.  
  138.  
  139.  
  140.      item in the following list contains groups of permissible identifications
  141.      for a single callinng sequence.  1. (Y,QTY,B) (RSD) (XB) (QY) 2.
  142.      (Y,QTY,RSD) (B) (XB) (QY) 3. (Y,QTY,XB) (B) (RSD) (QY) 4. (Y,QY) (QTY,B)
  143.      (RSD) (XB) 5. (Y,QY) (QTY,RSD) (B) (XB) 6. (Y,QY) (QTY,XB) (B) (RSD) In
  144.      any group the value returned in the array allocated to the group
  145.      corresponds to the last member of the group.  LINPACK.  This version
  146.      dated 08/14/78 .  Stewart, G. W., University of Maryland, Argonne
  147.      National Lab.
  148.  
  149.      CCCCQQQQRRRRSSSSLLLL uses the following functions and subprograms. BLAS
  150.      CAXPY,CCOPY,CDOTC Fortran ABS,AIMAG,MIN0,MOD,REAL
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.                                                                         PPPPaaaaggggeeee 3333
  196.  
  197.  
  198.  
  199.